/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package negocio;

import java.util.List;
import org.hibernate.Session;
import org.hibernate.Transaction;
import persistencia.dao.hibernate.UsuarioDAOImpl;
import persistencia.pojo.Usuario;
import persistencia.util.HibernateUtil;
/**
 * @author Victor
 *
 * To change the template for this generated type comment go to
 * Window&gt;Preferences&gt;Java&gt;Code Generation&gt;Code and Comments
 */
public class UsuarioManager {
 
    private UsuarioDAOImpl mgr;
    private Session session;

    public UsuarioManager() {
        mgr = new UsuarioDAOImpl();
        session = HibernateUtil.getSessionFactory().openSession();
    }
    public void closeSesion(){
        session.close();
    }
    public void saveUsuario(Usuario usuario){
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            mgr.saveUsuario(session, usuario);
            tx.commit();
        } catch (Exception e) {
            tx.rollback();
        } finally{
            //session.close();
        }
    }
    public void deleteUsuario(Usuario usuario){
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            mgr.saveUsuario(session, usuario);
            tx.commit();
        } catch (Exception e) {
            tx.rollback();
        } finally{
            //session.close();
        }
    }
    public void updateUsuario(Usuario usuario){
        Transaction tx = null;
        try {
            tx = session.beginTransaction();
            mgr.updateUsuario(session, usuario);
            tx.commit();
        } catch (Exception e) {
            tx.rollback();
        } finally{
            //session.close();
        }
    }

    public List<Usuario> getAllUsuarios(){
        Transaction tx = null;
        List<Usuario> retorno = null;
        try {
            tx = session.beginTransaction();
            retorno = mgr.getAllUsuarios(session);
            tx.commit();
        } catch (Exception e) {
            tx.rollback();
        } finally{
            //session.close();
        }
        return retorno;
    }
    public List<Usuario> getUsuariosWhere(String strColTabla, String strValueCol, String strPagActual){
        Transaction tx = null;
        List<Usuario> retorno = null;
        try {
            tx = session.beginTransaction();
            retorno = mgr.getUsuariosWhere(session, strColTabla, strValueCol, strPagActual);
            tx.commit();
        } catch (Exception e) {
            tx.rollback();
        } finally{
            //session.close();
        }
        return retorno;
    }
    public Usuario getUsuario(String codusuario){
        Transaction tx = null;
        Usuario retorno = null;
        try {
            tx = session.beginTransaction();
            retorno = mgr.getUsuario(session,codusuario);
            tx.commit();
        } catch (Exception e) {
            tx.commit();
        } finally{
            //session.close();
        }
        return retorno;
    }
        
}